package myzzyl.constants;

import lombok.Getter;

@Getter
public enum ErrorConstants {

    // 系统异常1200-1300
    UNKNOWN_ERROR(1200, "未知错误"),
    FORBIDDEN(1201, "权限不足"),


    // 业务异常:1500-1599
    // 楼层
    FLOOR_IS_NOT_EXIST(1500, "楼层不存在"),
    FLOOR_IS_ALREADY_EXIST(1501, "楼层已存在"),

    // 房型
    ROOMTYPE_IS_NOT_EXIST(1502, "房型不存在"),
    ROOMTYPE_IS_ALREADY_EXIST(1503, "房型已存在"),

    // 文件
    FILE_IS_NULL(1504, "文件为空"),
    FILE_PATTERN_ERROR(1505, "文件类型错误"),

    // 床位
    BED_IS_NOT_EXIST(1506, "床位不存在"),
    BED_IS_ALREADY_EXIST(1507, "床位已存在"),

    // 房间
    ROOM_IS_NOT_EXIST(1508, "房间不存在"),
    ROOM_IS_ALREADY_EXIST(1509, "房间已存在"),

    // 护理
    NURSING_PROJECT_IS_NOT_EXIST(1511, "护理项目不存在"),
    NURSING_PROJECT_IS_ALREADY_EXIST(1512, "护理项目已存在"),
    NURSING_PROJECT_NAME_IS_NULL(1513, "护理项目名称为空"),
    NURSING_PLAN_IS_NOT_EXIST(1514, "护理计划不存在"),
    NURSING_PLAN_IS_ALREADY_EXIST(1515, "护理计划已存在"),
    NURSING_PLAN_NAME_IS_NULL(1516, "护理计划名称为空"),
    NURSING_PROJECT_PLAN_IS_NULL(1517, "护理项目计划为空"),
    NURSING_LEVEL_IS_NOT_EXIST(1518, "护理等级不存在"),
    NURSING_LEVEL_IS_ALREADY_EXIST(1519, "护理等级已存在"),
    NURSING_LEVEL_NAME_IS_NULL(1520, "护理等级名称为空"),

    // 部门
    DEPT_IS_NOT_EXIST(1523, "部门不存在"),
    DEPT_IS_ALREADY_EXIST(1524, "部门已存在"),
    DEPT_NAME_IS_NULL(1525, "部门名称为空"),
    PARENT_DEPT_NO_IS_NULL(1526, "上级部门编号为空"),
    PARENT_DEPT_IS_NOT_EXIST(1527, "上级部门不存在"),
    DEPT_LEVEL_IS_OVER(1528, "部门层级不能超过四级"),
    DEPT_IS_ACTIVE(1529, "部门处于启用状态"),
    DEPT_HAS_SUB_DEPT(1530, "部门存在子部门，无法删除"),
    PARENT_DEPT_IS_DISABLE(1531, "上级部门处于禁用状态，无法启用"),
    DEPT_STATUS_IS_NULL(1532, "部门状态为空"),
    DEPT_HAS_USER(1532, "该部门下有员工，无法操作"),
    PARENT_DEPT_IS_NOT_SELF(1533, "上级部门不能是本身"),

    // 职位
    POST_IS_NOT_EXIST(1533, "职位不存在"),
    POST_IS_ALREADY_EXIST(1534, "职位已存在"),
    POST_NAME_IS_NULL(1535, "职位名称为空"),
    POST_IS_ACTIVE(1536, "职位处于启用状态"),
    POST_STATUS_IS_NULL(1533, "职位状态为空"),
    POST_HAS_USER(1533, "该职位下有员工，无法禁用"),

    // 资源
    RESOURCE_IS_NOT_EXIST(1534, "资源不存在"),
    RESOURCE_IS_ALREADY_EXIST(1535, "资源已存在"),
    RESOURCE_NAME_IS_NULL(1536, "资源名称为空"),
    RESOURCE_IS_ACTIVE(1537, "资源处于启用状态"),
    RESOURCE_STATUS_IS_NULL(1538, "资源状态为空"),
    RESOURCE_HAS_USER(1539, "该资源下有员工，无法禁用"),
    PARENT_RESOURCE_IS_NOT_EXIST(1540, "上级资源不存在"),
    MENU_RESOURCE_LEVEL_IS_OVER(1541, "菜单资源层级不能超过三级"),
    RESOURCE_HAS_SUB_RESOURCE(1542, "资源下有子资源，无法删除"),
    PARENT_RESOURCE_IS_DISABLE(1543, "上级资源处于禁用状态，无法启用"),
    PARENT_RESOURCE_IS_NOT_SELF(1544, "上级资源不能是本身"),

    // 角色
    ROLE_IS_NOT_EXIST(1545, "角色不存在"),
    ROLE_IS_ALREADY_EXIST(1546, "角色已存在"),
    ROLE_NAME_IS_NULL(1547, "角色名称为空"),
    ROLE_IS_ACTIVE(1548, "角色处于启用状态"),
    ROLE_STATUS_IS_NULL(1549, "角色状态为空"),
    ROLE_HAS_USER(1550, "该角色下有员工，无法禁用"),
    ROLE_NOT_HAS_MENU_POWER(1551, "角色未配置菜单权限，请联系管理员"),


    // 用户
    WX_LOGIN_FAIL(1552, "微信登录失败"),
    USER_IS_NOT_LOGIN(1553, "用户未登录"),
    USER_IS_NOT_EXIST(1554, "用户不存在"),
    USER_IS_ALREADY_EXIST(1555, "用户已存在"),
    USER_NAME_IS_NULL(1556, "用户名称为空"),
    USER_IS_ACTIVE(1557, "用户处于启用状"),
    USER_DEPT_OR_POST_ROLE_IS_NULL(1558, "用户的部门或岗位或角色为空"),
    USER_PHONE_PATTERN_IS_NOT_CORRECT(1559, "用户手机号格式不正确"),
    USER_CARD_PATTERN_IS_NOT_CORRECT(1560, "用户身份证格式不正确"),
    USER_EMAIL_PATTERN_IS_NOT_CORRECT(1561, "用户邮箱格式不正确"),
    USER_ACCOUNT_IS_NOT_EXIST(1562, "账号不存在"),
    USER_ACCOUNT_IS_FORBIDDEN(1563, "账号已禁用"),
    USER_ACCOUNT_OR_PASSWORD_ERROR(1564, "账号或密码错误"),
    USER_NOT_HAS_MENU_POWER(1565, "用户未配置菜单权限, 请联系管理员"),

    // 产品和设备
    LIST_PRODUCTS_ERROR(1566, "产品获取失败，请稍后再试"),
    DEVICE_IS_NOT_EXIST(1567, "设备不存在"),
    DEVICE_IS_ALREADY_EXIST(1568, "设备已存在"),
    DEVICE_NAME_IS_NULL(1569, "设备名称为空"),
    DEVICE_NAME_IS_ALREADY_EXIST(1570, "设备名称已存在"),
    DEVICE_NODE_ID_IS_NULL(1571, "设备标识码为空"),
    DEVICE_NODE_ID_IS_ALREADY_EXIST(1572, "设备标识码已存在"),
    DEVICE_IS_BIND_TO_ELDER_OR_POSITION(1573, "该老人/位置已绑定该产品，请重新选择");

    private final Integer code;

    private final String message;

    ErrorConstants(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
